User satisfaction with a program, application, or service running on a mobile device often depends on the user interface (UI) associated with the mobile device. With some mobile devices, a UI is supplied to a mobile device via the Internet. With web-based provisioning of a user interface, a web page is built on a server and provided to the user through the web browser available on the mobile device. The interactivity between the user and the web page is limited to the browser's rendering capabilities, which also limits the interactivity between the user and the program. Mobile devices also have a limited bandwidth of communication. A lower bandwidth can create higher latency for the receipt and transmission between the web page produced on the user's mobile device and the application resident on an external server.
A UI may also be associated with a mobile device by downloading the entire program or application to the mobile device. The entire program may consume a large portion of the memory of the mobile device. Also, a UI may be associated with a mobile device by downloading a “thick client” to the mobile device. The variety of mobile devices available and the variety of thick clients may result in compatibility problems that arise as these types of clients are used. Also, building a thick client for each of the various mobile device results in development, testing and economic inefficiencies.